JS-判断是否是数字

isNaN

缺点: null、空格以及空串、’[123] ‘会被按照 0 来处理

1
2
3
4
5
6
7
8
9
10
11
function isRealNum(val){
// 先判定是否为number
if(typeof val !== 'number'){
return false;
}
if(!isNaN(val)){
return true;
}else{
return false;
}
}

正则

校验只要是数字(包含正负整数,0 以及正负浮点数)就返回 true

1
2
3
4
5
6
7
8
9
function isNumber(val){
var regPos = /^\d+(\.\d+)?$/; //非负浮点数
var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
if(regPos.test(val) || regNeg.test(val)){
return true;
}else{
return false;
}
}